package com.jettech.oa.service;

import java.util.List;
/**
 * JBPM服务接口
 * @author Administrator
 *
 */
public interface JbpmService {
	/**
	 * 部署流程定义
	 * @param processFile 流程定义文件
	 * @return 流程名称
	 */
	public String saveProcessDefinition(byte[] processFile);
	/**
	 * 删除流程定义
	 * @param processName 流程名称
	 */
	public void deleteProcessDefinition(String processName);
	/**
	 * 添加流程实例
	 * @param processName 流程名称
	 * @param documentId 公文ID
	 * @return 流程实例的ID
	 */
	public long saveProcessInstance(String processName,long documentId );
	/**
	 * 删除流程实例对象
	 * @param processInstanceId 流程实例ID
	 */
	public void deleteProcessInstance(long processInstanceId);
	/**
	 * 查询下一步可选的路径列表
	 * @param actorId 用户标识(username)
	 * @param processInstanceId 流程实例ID
	 * @return List中的元素是transition对象的名称
	 */
	public List<String> searchNextTransitions(String actorId,long processInstanceId);
	/**
	 * 触发JBPM流转到下一个环节
	 * @param actorId 用户标识
	 * @param processInstanceId 流程实例ID
	 * @param transitionName transition的名称
	 * @return 流转到下一个环节之后的节点名称
	 */
	public String searchNextStep(String actorId,long processInstanceId,String transitionName);
	/**
	 * 查询我的任务列表
	 * @param actorId 用户的标识
	 * @return List中的元素是公文ID
	 */
	public List<Long> searchMyTashList(String actorId);
}
